package com.duqc.designpattern.responsibility;

/**
 * @ClassName Filter
 * @Description 责任链模式（第一步：定义过滤器接口）
 * @Author duqc
 * @Date 2021/5/7
 **/
public interface Filter {

    /**
     * 接口方法
     *
     * @param data
     * @param filterChain
     * @return
     */
    String doFilter(String data, FilterChain filterChain);

    /**
     * 过滤关键字的方法
     *
     * @param data
     * @param word
     * @return
     */
    default String filterByWord(String data, String word) {
        StringBuilder sb = new StringBuilder(data);
        while (true) {
            int index = sb.indexOf(word);
            if (index != -1) {
                for (int i = 0; i < word.length(); i++) {
                    //关键字有几个字，就删几次。比如水果就在index删两次即可
                    sb.deleteCharAt(index);
                }
            } else {
                //如果找不到关键字，就跳出循环
                break;
            }
        }
        return sb.toString();
    }
}
